home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1999 January - Disc 2 / Macworld (1999-01) (Disk 2).dmg / Serious Demos / Symbolic Composer 4.2 / Environment / System / CADAR / Symbols / Ornamentation / multi-rnd-ornament < prev    next >
Text File  |  1998-10-22  |  3KB  |  77 lines

  1. multi-rnd-ornament
  2. min max length-list melody 
  3. &key (r-type 'all) (type 'norm)
  4. (seed nil) (pcnt 100) (step-type 'norm)
  5. (rnd-type 'norm) (step '(1)) (to-pcnt nil)
  6.  
  7. legal r-types 'all 'evens 'odds
  8. legal rnd-types 'gauss 'norm
  9. legal types 'norm 'rnd
  10. legal step-types 'norm 'change
  11.  
  12. this function has similarities with rhythm-ornament 
  13. but lets you simultaneously
  14. ornament both lengths and symbols.
  15. length of ornament will be inside min and max.
  16. it is a combination of multi-ornament and rhythm-ornament 
  17. which you can read more about to understand this function.
  18. to get only the melodic result use cadr and to get only
  19. rhythmic result use car
  20.  
  21. (multi-rnd-ornament 3 5 
  22.        '(1/2 1/4 1/2 1/8 1/8) '(a b c d e) :seed 0.1)
  23. ->(((a -b a) (b a b) (c b) (d c) (e d e d)) ((1/5 1/5 1/10) (1/8 1/16 1/16) (3/10 1/5) (3/32 1/32) (1/32 1/32 1/32 1/32)))
  24.  
  25. (multi-rnd-ornament 3 5 
  26. '(1/2 1/4 1/2 1/8 1/8) '(a b c d e) :seed 0.1 
  27. :r-type 'odds)
  28. ->(((a -b a) (b a b) (c b) (d c) (e d e d)) ((1/5 1/5 1/10) (1/10 1/20 1/10) (3/10 1/5) (1/10 1/40) (1/20 1/40 1/40 1/40)))
  29.  
  30. (multi-rnd-ornament 3 5 
  31. '(1/2 1/4 1/2 1/8 1/8) '(a b c d e) :seed 0.1 
  32. :r-type 'evens)
  33. ->(((a -b a) (b a b) (c b) (d c) (e d e d)) ((1/8 1/4 1/8) (1/8 1/16 1/16) (1/4 1/4) (3/32 1/32) (1/32 1/32 1/32 1/32)))
  34.  
  35.  
  36. (multi-rnd-ornament 3 5 
  37. '(1/2 1/4 1/2 1/8 1/8) '(a b c d e) :seed 0.1 
  38. :r-type 'all :pcnt 50 :rnd-type 'norm)
  39. ->(((a -b a) (b a b) (c) (d) (e d c d)) ((1/5 1/5 1/10) (1/8 1/16 1/16) (1/2) (1/8) (1/32 1/32 1/32 1/32))) 
  40.  
  41.  
  42. (multi-rnd-ornament 3 5 
  43. '(1/2 1/4 1/2 1/8 1/8) '(a b c d e) :seed 0.1 
  44. :pcnt 10 :to-pcnt 100)
  45. ->(((a -b a) (b) (c) (d) (e d e d)) ((1/5 1/5 1/10) (1/4) (1/2) (1/8) (1/32 1/32 1/32 1/32)))
  46.  
  47.  
  48. (multi-rnd-ornament 3 5 
  49. '(1/2 1/4 1/2 1/8 1/8) '(a b c d e) :seed 0.1 
  50. :step '(3 1 5) :step-type 'change :rnd-type 'gauss)
  51. ->(((a -d -c) (b -c -b) (c -b) (d a) (e b c f)) ((1/5 1/5 1/10) (1/8 1/16 1/16) (3/10 1/5) (3/32 1/32) (1/32 1/32 1/32 1/32)))
  52.  
  53. min and max can also be lists of integers. 
  54.  
  55. (multi-rnd-ornament '(3 4) '(5 8 9) 
  56. '(1/2 1/4 1/2 1/8 1/8) '(a b c d e) :seed 0.1 
  57. :type 'odds :pcnt 100 :rnd-type 'gauss :step '(3 1 5) 
  58. :step-type 'change :to-pcnt 20)
  59. ->(((a -d -c) (b -c -b) (c f) (d) (e b a d e)) ((1/5 1/5 1/10) (1/10 1/20 1/10) (5/16 3/16) (1/8) (1/28 1/56 1/56 1/28 1/56)))
  60.  
  61. with step you can change from default 1 which ornaments
  62. only 1 semitone at the time to 3 or 4 for arpeggio-effects
  63. or use a list of step-values to vary.
  64.  
  65. (car (multi-rnd-ornament 5 11 
  66. '(1/2 1/4 1/2 1/8 1/8) '(a b c d e) 
  67. :seed 0.1 :step '(1 8)))
  68. ->((a -b a -b) (b a b) (c b) (d c) (e d e d e))
  69.  
  70.  
  71. (car (multi-rnd-ornament 5 11 
  72. '(1/2 1/4 1/2 1/8 1/8) '(a b c d e) 
  73. :seed 0.1 :step '(1 8) :type 'rnd))
  74. ->((a b c d) (b c c) (c d) (d e) (e e f g h))
  75.  
  76.  
  77.